package com.scrx.ymg.service.supermarket;

import java.util.List;
import java.util.Map;

import com.scrx.ymg.entity.AgentDrawings;
import com.scrx.ymg.entity.BankAccount;
import com.scrx.ymg.entity.GoodsType;
import com.scrx.ymg.entity.HeadWithdarw;
import com.scrx.ymg.entity.SuperMarketEntrepot;
import com.scrx.ymg.entity.SuperMarketInfo;
import com.scrx.ymg.entity.SupermarketDrawings;
import com.scrx.ymg.entity.SupermarketMoney;

public interface ISuperMarketService {
	
	public List<SuperMarketEntrepot> findAllByid(String superinfoID);
	
	
	/**
	 * 登陆查询
	 * @param username
	 * @param password
	 * @return
	 */
	public SuperMarketInfo findone(String username,String password);
	
	/**
	 * 查询商品分类
	 * @return
	 */
	public List<GoodsType> findAll();
	/**
	 * 查询2级商品分类
	 * @return
	 */
	public List<GoodsType> findOne(String typeID);
	
	/**
	 * 根据经纬度查询超市
	 * @param maxlon 最大经度
	 * @param maxlat 最大纬度
	 * @param minlon 最小经度
	 * @param minlat 最小纬度
	 * @return 超市集合
	 */
	public List<SuperMarketInfo> findSuperListBylatlon(double maxlon,double maxlat,double minlon,double minlat);
	
	/**
	 * 根据id拿到超市对象
	 * @param id
	 * @return
	 */
	public SuperMarketInfo findByID(Integer id);
	
	/**
	 * 登陆查询
	 * @param username
	 * @param password
	 * @param typeID
	 * @return
	 */
	public Object loginByTypeID(String username,String password,String typeID);
	
	/**
	 * 超市修改密码
	 * @param superId
	 * @param oldPassWord
	 * @param newPassWord
	 * @return
	 */
	public String modificationPassWord(int superId,String oldPassWord,String newPassWord);
	
	/**
	 * 代理商修改密码
	 * @param superId
	 * @param oldPassWord
	 * @param newPassWord
	 * @return
	 */
	public String modificationPassWordByAgent(int agentId,String oldPassWord,String newPassWord);

     /**
      * 得到超市营业额
      * @param superId
      * @return
      */
	public SupermarketMoney getSupermarketMoneyInfo(int superId);

    /**
     * 超市提现
     * @param superId
     * @return
     */
	public String superMarketWithdraw(int superId);
	
	/**
	 * 得到总部提现设置
     * @param superId
     * @return
     */
	public HeadWithdarw getHeadWithdarw();

    /**
     * 创建银行账户
     * @param bankAccount
     * @return
     */
	public String createBankAccountInfo(BankAccount bankAccount);

    /**
     * 是否存在银行账户
     * @param superId
     * @return
     */
	public String isNullBankAccountInfo(int superId);
	/**
     * 是否存在银行账户
     * @param superId
     * @return
     */
	public String isNullBankAccountInfoAgent(int agentId);
	
	/**
	 * 是否存在银行账户
	 * @param otherId
	 * @return
	 */
	public String isNullBankAccountInfoOther(int otherId);

    /**
     * 查询超市提现记录
     * @param drawing
     * @param pageNum
     * @param pageCount
     * @return
     */
	public Map<Object, Object> getSupermarketDrawings(SupermarketDrawings drawing, int pageNum, int pageCount);
	
    /**
     * 查询代理商提现记录
     * @param drawing
     * @param pageNum
     * @param pageCount
     * @return
     */
	public Map<Object, Object> getAgentDrawings(AgentDrawings drawing, int pageNum, int pageCount);

    /**
     * 查询超市
     * @param info
     * @param pageNum
     * @param pageCount
     * @return
     */
	public Map<Object, Object> getAllSuperMarketInfo(SuperMarketInfo info, int pageNum, int pageCount);

    /**
     * 冻结恢复超市
     * @param info
     * @return
     */
	public String freezeSuperMarket(SuperMarketInfo info);

    /**
     * 代理商提现
     * @param agentId
     * @return
     */
	public String AgentWithdraw(AgentDrawings drawing);

    
	/**
	 * 删除超市
	 * @param info
	 * @return
	 */
	public String deleteSuperMarketInfo(SuperMarketInfo info);

    

    /**
     * 查询冻结,恢复超市
     * @param info
     * @param pageNum
     * @param pageCount
     * @return
     */
	public Map<Object, Object> getSuperMarketInfoByStatus(SuperMarketInfo info, int pageNum, int pageCount);

    /**
     * 审核超市通过
     * @param info
     * @return
     */
	public String checkSuperMarketInfo(SuperMarketInfo info);

    
	/**
	 * 是否存在直营银行账户
	 * @param direct
	 * @return
	 */
	public String isNullBankAccountInfoDirect(int direct);

    
	/**
	 * 总部修改密码
	 * @param oldPassWord
	 * @param newPassWord
	 * @return
	 */
	public String updatePassWord(String oldPassWord, String newPassWord);


	/**
	 * 根据提现申请Id查询提现表单
	 * @param drawingId
	 * @return
	 */
	public AgentDrawings getAgentDrawings(int drawingId);
	

}
